package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FISDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("./fos.dat");
        /*
            java.io.InputStream(所有字节输出流的超类)
            定义了基本的读取字节方法:
            int read()
            读取1个字节,并以int类型返回,返回的int值中2进制的"低8位"为实际读取到的1字节数据
            但是如果返回的int值为整数-1,则表达流读取到了末尾.
         */
        /*
            第一次调用read():

            文件fos.dat中的数据:
            00000001 00000010

            第一次读取:
            00000001 00000010
            ^^^^^^^^
            读取的字节

            返回值d的2进制样子:
            00000000 00000000 00000000 00000001
            |-------自动补充24个0------| 实际读取的字节
         */
        int d;
        d= fis.read();
        System.out.println(d);//1
        /*
            第二次调用read():

            文件fos.dat中的数据:
            00000001 00000010

            第二次读取:
            00000001 00000010
                     ^^^^^^^^
                     读取的字节

            返回值d的2进制样子:
            00000000 00000000 00000000 00000010
            |-------自动补充24个0------| 实际读取的字节
         */
        d=fis.read();
        System.out.println(d);//2
        /*
            第三次调用read():

            文件fos.dat中的数据:
            00000001 00000010

            第三次读取:
            00000001 00000010
                              ^^^^^^^^
                              文件末尾

            返回值d的2进制样子:
            11111111 11111111 11111111 11111111
            int型-1.用于表达流读取到了末尾
         */
        d=fis.read();
        System.out.println(d);//-1
        fis.close();
    }
}
